
چند روزی هست ک یک روش و یک کد اومده کاربر های مزاحم با استفاده از تمبر دیتا میان متنی که می خوان ارسال کنن رو بزرگ می کنن و باعث میشه چت روم هنگ کنه و به نوعی کاربر اذیت بشن برای همین این جلوگیر گذاشتم
دوستانی که میان از ما پلاگین میبرن لطفا این سایتو به اشنا های خود معرفی کنن ! ممنون
این کد زیرا در public_html/class/MessageInserter.class جایگذین کنید تمومه !
<?php /** * Class MessageInserter, insert system and user messages into DB and transform it if needed * * LICENSE: CREATIVE COMMONS PUBLIC LICENSE “Namensnennung — Nicht-kommerziell 2.0″ * * @copyright 2009 <SEDesign /> * @license http://creativecommons.org/licenses/by-nc/2.0/de/ * @version $3.0.6$ * @link http://www.sedesign.de/de_produkte_chat-v3.html * @since File available since Alpha 1.0 */
class MessageInserter extends EtChatConfig { /** * DB-Connection Obj * @var ConnectDB */ private $dbObj;
/** * Status var only needed for information if the user will be inserted into blacklist because of spam * @var String */ public $status;
/** * Constructor * * @param ConnectDB $dbObj, Obj with the db connection handler * @param Array $raum_array * @uses ConnectDB::sqlSet() * @return void */ public function __construct ($dbObj, $raum_array){
// call parent Constructor from class EtChatConfig parent::__construct();
$this->dbObj=$dbObj;
// message after room entrance if ($_POST['roomchange']==”true” && !empty($raum_array[0][3])){ // line break WIN $room_message_insert = str_replace(“\r\n”,”<br />”,$raum_array[0][3]); // line break LIN, Uniux, MacOS $room_message_insert = str_replace(“\n”,”<br />”,$room_message_insert);
new SysMessage($this->dbObj, “<br /><div style=\”margin: 4px;\”>”.$room_message_insert.”<div>”,(int)$_POST['room'],$_SESSION['etchat_'.$this->_prefix.'user_id']); }
if (isset($_POST['sysmess'])){
// spam test to prevent hacking over Live HTTP Headrs (since v307 beta 7) if ($this->spamTester()) { $this->status = “spam”; return false; }
$_POST['message'] = htmlspecialchars($_POST['message'], ENT_QUOTES, “UTF-8″); $_POST['message'] = “<b>”.$_SESSION['etchat_'.$this->_prefix.'username'].”</b> “.$_POST['message'];
// do not create a visible room entrance message if the user is invisible, just make the message as a private one if ($_POST['roomchange']==”true” && $_SESSION['etchat_'.$this->_prefix.'userstatus']==”status_invisible”) $_POST['privat']=$_SESSION['etchat_'.$this->_prefix.'user_id']; else{ // to prevent hacking (since v307 beta 7) if($_POST['privat']>0) $_POST['privat']=$_SESSION['etchat_'.$this->_prefix.'user_id']; }
new SysMessage($this->dbObj, $_POST['message'],(int)$_POST['room'],(int)$_POST['privat']); } else{
// spam test if ($this->spamTester()) { $this->status = “spam”; return false; }
// transforms the $_POST['message'] before inserting it $this->messageTransformer();
// Filter CSS-Parameter of the message to prevent CSS or other injections. $_POST['color'] = substr($_POST['color'], 0, 7); $_POST['bold'] = substr($_POST['bold'], 0, 6); $_POST['italic'] = substr($_POST['italic'], 0, 6);
// message style parameters $style = “color:”.htmlentities($_POST['color'], ENT_QUOTES, “UTF-8″).”;font-weight:”.htmlentities($_POST['bold'], ENT_QUOTES, “UTF-8″).”;font-size: 6px”.htmlentities($_POST['italic'], ENT_QUOTES, “UTF-8″).”;”;
// inserts the user message into the DB $this->dbObj->sqlSet(“INSERT INTO {$this->_prefix}etchat_messages ( etchat_user_fid, etchat_text, etchat_text_css, etchat_timestamp, etchat_fid_room, etchat_privat, etchat_user_ip) VALUES ( ‘”.$_SESSION['etchat_'.$this->_prefix.'user_id'].”‘, ‘”.$_POST['message'].”‘, ‘”.$style.”‘, “.date(‘U’).”, “.(int)$_POST['room'].”, “.(int)$_POST['privat'].”, ‘”.$_SERVER['REMOTE_ADDR'].”‘)”);
// BOT ——————————————- /* if (substr($_POST['message'], 0, 5)==”.time”){ $db->sql(“INSERT INTO {$this->_prefix}etchat_messages ( etchat_user_fid , etchat_text, etchat_text_css, etchat_timestamp, etchat_fid_room, etchat_privat) VALUES ( 1, ‘”.date(‘d.m.Y – H:i’).”‘, ‘color:#”.$_SESSION['etchat_'.$this->_prefix.'syscolor'].”;font-weight:normal;font-style:normal;’, “.date(‘U’).”, “.(int)$_POST['room'].”, 0)”, false); } if (substr($_POST['message'], 0, 8)==”.version”){ $db->sql(“INSERT INTO {$this->_prefix}etchat_messages ( etchat_user_fid , etchat_text, etchat_text_css, etchat_timestamp, etchat_fid_room, etchat_privat) VALUES ( 1, ‘ET-Chat v3.0.5′, ‘color:#”.$_SESSION['etchat_'.$this->_prefix.'syscolor'].”;font-weight:normal;font-style:normal;’, “.date(‘U’).”, “.(int)$_POST['room'].”, 0)”, false); } if (substr($_POST['message'], 0, 1)==”/”){ $db->sql(“INSERT INTO {$this->_prefix}etchat_messages ( etchat_user_fid , etchat_text, etchat_text_css, etchat_timestamp, etchat_fid_room, etchat_privat) VALUES ( 1, ‘IRC Befehle werden hier nicht unterstützt. Alle Einstellungen kِnnen stattdessen in Menues bequemm eingestellt werden.’, ‘color:#”.$_SESSION['etchat_'.$this->_prefix.'syscolor'].”;font-weight:normal;font-style:normal;’, “.date(‘U’).”, “.(int)$_POST['room'].”, 0)”, false); } */ //——————————– } }
/** * Transforms the message * * @return void */ private function messageTransformer(){ $_POST['message'] = substr($_POST['message'], 0, 1000); if (strlen($_POST['message'])>999) $_POST['message'] .=”…”;
$woerter_array=explode(” “,$_POST['message']); foreach($woerter_array as $wort){ if (strlen($wort)>50 && substr($wort, 0, 7)!=”http://” && substr($wort, 0, 8)!=”https://” && substr($wort, 0, 6)!=”ftp://” && stripos($wort, ‘]http://’)===false){ $new_wort = wordwrap( $wort, 50, ” “, 1); $_POST['message'] = str_replace($wort, $new_wort, $_POST['message']); } } $_POST['message'] = htmlspecialchars(str_replace(“\\”,”\\\\”,$_POST['message']), ENT_QUOTES, “UTF-8″); }
/** * Test if the message is a spam, warns the user and insert him into the blacklist if needed * * @uses LangXml object creation * @uses LangXml::getLang() parser method * @uses Blacklist object creation * @uses Blacklist::userInBlacklist() checks if in the Blacklist * @uses Blacklist::insertUser() * @uses Blacklist::allowedToAndSetCookie() * @uses Blacklist::killUserSession() * @return bool */ private function spamTester(){
$_SESSION['etchat_'.$this->_prefix.'spam'][]=date(‘U’);
// do not overload the session array in the case of server performanse, so clear it every 200 entries if (count($_SESSION['etchat_'.$this->_prefix.'spam'])>200) { unset($_SESSION['etchat_'.$this->_prefix.'spam']); $_SESSION['etchat_'.$this->_prefix.'spam']=array(); }
// 3 messages one after another are allowed, excepting ADMIN/MOD if (count($_SESSION['etchat_'.$this->_prefix.'spam'])>3 && $_SESSION['etchat_'.$this->_prefix.'user_priv']!=”admin” && $_SESSION['etchat_'.$this->_prefix.'user_priv']!=”mod”){
$spam_interval=($_SESSION['etchat_'.$this->_prefix.'spam'][(count($_SESSION['etchat_'.$this->_prefix.'spam'])-1)] – $_SESSION['etchat_'.$this->_prefix.'spam'][(count($_SESSION['etchat_'.$this->_prefix.'spam'])-4)]);
if ($spam_interval < 6 ){ // create new LangXml Object $langObj = new LangXml(); $lang=$langObj->getLang()->reloader_php[0]; new SysMessage($this->dbObj, $lang->spam[0]->tagData,(int)$_POST['room'],(int)$_SESSION['etchat_'.$this->_prefix.'user_id']);
$_SESSION['etchat_'.$this->_prefix.'spam_warn']++;
if ($_SESSION['etchat_'.$this->_prefix.'spam_warn']>2){ // create new Blacklist Object $blObj = new Blacklist($this->dbObj); $blObj->insertUser($_SESSION['etchat_'.$this->_prefix.'user_id'],300); $blObj->userInBlacklist(); $blObj->allowedToAndSetCookie(); $blObj->killUserSession(); return true; } else return false; } }
}
}
:: موضوعات مرتبط:
پلاگین چت روم ,
,
:: بازدید از این مطلب : 15984
|
امتیاز مطلب : 19
|
تعداد امتیازدهندگان : 6
|
مجموع امتیاز : 6
سلام چرا دیگه کار نمیکنه کلمات کلیدی پیدا نمیکنه
سلام
سلام
پاسخ:درود
پاسخ:سلام.ممنون لطف دارید موفق باشید
یادش بخیر
بازان چت عمرمونو اونجا تموم کردیم
برای مهر چت میخام قالب بزنم
کی بلده اختصاصی برام بزنه لطفا
با درود و سپاس و تشکر فراوان از سینا عزیز که چند ساله داره زحمت میکشه اونم رایگان . و اما این بکاپ سالم. ههست مشکلی هم نداره . .
فقط با کامپیوتر ممکنه با. مرورگر کروم مشکل رفرش دداشته باشید اما با فایر فاکس مشکلی نداره من بکاب. رو دوساله دارم. استفاده. میکنم .
رمز. ورودد ادمین
25522
رمز امنیتی دوم 25522
رمز پنل اظطراری 4135
نام کاربری ورود به پنل اطظراری mehrtarh
دوستان میتونن برن به این ادرس ها نموونش رو.
بببینن soheyl.top mchat.soheyl.top
با سلام خدمت دوستان عزیز
این بکاب مشکل داره مشکلشم اینه که بکاب رو نصب میکنی بعد چند روز میخای وارد چت رومت بشی اجازه ورود نمیده و صحفه چت روم رفرش میشه
ممنون میشم مشکلشو بگین ممنون
پاسخ:سلام هاستی که نصب شده و این مشکل روش هست رو بفرستید بررسی کنیم